package cn.biplam.front.template.pageFrame.mdManage;

import cn.biplam.common.paramters.SysName;
import cn.biplam.common.tools.TOOLS;
import cn.biplam.common.wrapper.ErrorMessage;
import cn.biplam.front.html.HtmlDiv;
import cn.biplam.front.html.base.HtmlWindow;
import cn.biplam.front.html.base.Const.Window_Event;
import cn.biplam.front.htmlscript.script.PopupScript;
import cn.biplam.front.template.base.Text;

/**
 * 在Pr弹出窗口中的，提示信息模板
 * @author XiaoRuxing Jul 30, 200911:25:58 AM
 * @version 1.0
 */
public class AlertPrompt {
	
	private String alertInfo;
	private HtmlDiv div;
	
	/** 最大宽度 */
	private int maxWidth = 200;
	/** 最大高度 */
	private int maxHeight = 100;
	/** 是否绑定脚本 */
	private boolean isBindScript = true;
	
	/**
	 * 创建提示信息模板,用于点击确定后不做附加操作，只是关闭弹出框
	 * @param alertInfo  提示信息
	 */
	public AlertPrompt(String alertInfo){
		this(alertInfo,200);
	}
	
	/**
	 * 创建提示信息模板,用于点击确定后不做附加操作，只是关闭弹出框
	 * @param alertInfo 提示信息
	 * @param maxWidth 最大宽度
	 */
	public AlertPrompt(String alertInfo,int maxWidth){
		this.alertInfo = alertInfo;
		this.div = new HtmlDiv();
		this.maxWidth = maxWidth;
	}
	
	/**
	 * 创建提示信息模板，用于点击确定后需要做附加操作，而提示信息容器有其他内容
	 * @param alertInfo 提示信息
	 * @param div 提示信息容器
	 */
	public AlertPrompt(String alertInfo,HtmlDiv div){
		this.alertInfo = alertInfo;
		this.div = div;
		this.isBindScript = false;
	}
	
	private void _setSize() throws ErrorMessage{
		int length = 0;
		int width = 0;
		int height = 0;
		if(!TOOLS.StringIsEmpty(this.alertInfo)){
			length = alertInfo.getBytes().length;
			length = TOOLS.getPxLength(length);
		}
		if(length>maxWidth){
			width = maxWidth;
			height = (length/maxWidth+1)*14;
			height = height<maxHeight?maxHeight:height;
		}else{
			if(length<100){
				length = 100;
			}
			width = length;
			height = maxHeight;
		}
		this.div.setStyleSize(TOOLS.intToString(width), TOOLS.intToString(height));
	}

	/**
	 * 获取提示界面
	 * @return
	 * @throws ErrorMessage
	 */
	public HtmlWindow get() throws ErrorMessage{
		this._setSize();
		div.put(new Text(this.alertInfo).get());
		if(isBindScript){
			div.bind(SysName.PromptSubmitID, Window_Event.OnClick,
					PopupScript.cancel(SysName.PromptID));
		}
		return div;
	}
}
